package com.baichang.taoshunda.service;

import com.baichang.framework.excelption.DBException;
import com.baichang.framework.excelption.ServiceException;
import com.baichang.framework.model.Page;
import com.baichang.taoshunda.entity.City;

import java.util.List;
import java.util.Map;

/**
 * Created by ${wushenglu} on 2017/7/27 0027.
 */
public interface CityService {


    /**
     * 接口获取城市信息
     *
     * @param parentId （预留，现在用不到）
     * @param key
     * @return
     */
    Map<String, Object> getCity(int parentId, String key);

    /**
     * 根据父级编号获取下属城市
     *
     * @param parentId （预留，现在用不到）
     * @return
     */
    List<Map<String, Object>> getCityByParentId(int parentId);

    /**
     * 根据上级编号获取城市信息
     *
     * @param parentId  上级编号
     * @return
     */
    List<Map<String, Object>> getDeliveryCityByParentId(int parentId);

    /**
     * 热门城市列表
     */

    Page<Map<String, Object>> queryHotCity(int nowPage, int pageSize) throws DBException;

    /**
     * 修改排序
     */
    boolean updateSorting(int id, int sorting) throws ServiceException;

    /**
     * 删除热门城市
     */
    boolean delete(int id) throws ServiceException;

    /**
     * 修改热门城市
     */
    boolean updateCityName(int id, String cityName) throws ServiceException;

    /**
     * 后台查询城市
     */
    Page<City> queryAllCity(int nowPage, int pageSize, int parentId, int isHot, String name) throws DBException;

    /**
     * 添加城市
     *
     * @throws ServiceException
     */
    boolean addCity(int id, String name, Long parentId, Integer deptPath, Integer sorting) throws ServiceException;

    /**
     * 设置热门城市
     */
    boolean addHot(int id, int isHot) throws ServiceException;

    /**
     * 获取城市
     *
     * @param deptPath
     * @return
     */
    List<Map<String, Object>> queryByCityId(Integer cityId, Integer deptPath);

    /**
     * 根据省id获取市
     *
     * @param id
     * @return
     */
    List<Map<String, Object>> queryCityIdInfo(Integer id);

    /**
     * 根据城市编号获取城市名称
     *
     * @param cityId 城市编号
     * @return
     */
    String getCityNameById(Integer cityId);

    /**
     * 城市编号的获取
     *
     * @param cityName
     * @return
     */
    int getCityIdByCityName(String cityName);

    /**
     *
     * @param level
     * @param lng
     * @param lat
     * @return
     */
    Map<String,Object> getCityByLngLat(Integer level, String lng, String lat);
}
